#ifndef _FRSSL_DAQ_H
#define _FRSSL_DAQ_H

#include <daq_common.h>

#define DAQ_MODULE_PCAP         "pcap"
#define DAQ_MODULE_AFPACKET     "afpacket"

int DAQ_Load (const char* dirs[]);
int DAQ_Init(const char *p_module_name);

void* DAQ_New(DAQ_Mode en_mode
          , char *p_input
          , unsigned int ui_ring_size
          , unsigned int ui_snaplen
          , unsigned int ui_timeout
          , char *p_errbuf, unsigned int ui_buf_size
          , int  *p_i_daq_dlt);
int DAQ_Start(void* daq_hand, char *p_errbuf, unsigned int ui_buf_size, int *p_i_daq_dlt);

int DAQ_SetFilter(void* daq_hand, const char* bpf);

int DAQ_Acquire(void* daq_hand, int max, DAQ_Analysis_Func_t callback, void* user);
//int DAQ_BreakLoop (void* daq_hand, int error);

int DAQ_Stop(void* daq_hand);
void DAQ_Unload(void);

//int DAQ_datalink(void);
void DAQ_GetError(void* daq_hand, char *p_msg, unsigned int ui_size);
DAQ_Stats_t* DAQ_GetStats(void* daq_hand, DAQ_Stats_t *daq_stats);

#endif /* _NIDS_DAQ_COMM_H */
